package com.flow.demo.module.gd.api.gduser;

import cn.hutool.core.bean.BeanUtil;
import com.flow.demo.module.gd.api.gduser.dto.GdUserRespDTO;
import com.flow.demo.module.gd.dal.dataobject.gduser.GdUserDO;
import com.flow.demo.module.gd.dal.mysql.gduser.GdUserMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.time.LocalDateTime;

/**
 * Admin 用户 API 实现类
 *
 * @author 福乐云
 */
@Service
public class GdUsersApiImpl implements GdUsersApi {

    @Resource
    private GdUserMapper gdUserMapper;

    @Override
    public GdUserRespDTO getGdUser(String openId) {
        GdUserDO gdUserDO = gdUserMapper.selectOne(GdUserDO::getProgramOpenid, openId);
        if (gdUserDO == null)
            return null;
        return BeanUtil.toBean(gdUserDO, GdUserRespDTO.class);
    }

    @Override
    public GdUserRespDTO getGdUserByPhone(String phone) {
        GdUserDO gdUserDO = gdUserMapper.selectOne(GdUserDO::getPhone, phone);
        if (gdUserDO == null)
            return null;
        return BeanUtil.toBean(gdUserDO, GdUserRespDTO.class);
    }

    @Override
    public int addUser(String openid, String unionid) {
        GdUserDO gdUserDO=new GdUserDO();
        gdUserDO.setUnionId(unionid);
        gdUserDO.setProgramOpenid(openid);
        gdUserDO.setNickName("微信用户"+openid.substring(openid.length()-5));
        gdUserDO.setCreateTime(LocalDateTime.now());
        int insert = gdUserMapper.insert(gdUserDO);
        return insert>0?gdUserDO.getId():0;
    }

    @Override
    public int addUser2(String phone, String name) {
        GdUserDO gdUserDO=new GdUserDO();
        gdUserDO.setPhone(phone);
        gdUserDO.setNickName(name);
        gdUserDO.setCreateTime(LocalDateTime.now());
        int insert = gdUserMapper.insert(gdUserDO);
        return insert>0?gdUserDO.getId():0;
    }
}
